/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo.dao;

import controle_pojo.Funcionario;
import modelo.conexao.conexao;
import java.beans.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class cadFuncionarioDAO {

    public Statement statement;
    public ResultSet rs;

    public void salvarFuncionario(Funcionario f) {
        try {
            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "INSERT INTO public.funcionario (nome, sexo, cpf, rg, dtnascimento, email, naturalidade,  nacionalidade, "
                    + "endereco, telcel, telresid, ctp, funcao, dtadmissao, dtdemissao, estadocivilfunc, bairrofunc, cepfunc, uf, cidadefunc)"
                    + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

            comandoSQL.setString(1, f.getNome());
            comandoSQL.setString(2, f.getSexo());
            comandoSQL.setString(3, f.getCpf());
            comandoSQL.setString(4, f.getRg());
            comandoSQL.setString(5, f.getDtnascimento());
            comandoSQL.setString(6, f.getEmail());
            comandoSQL.setString(7, f.getNaturalidade());
            comandoSQL.setString(8, f.getNacionalidade());
            comandoSQL.setString(9, f.getEndereco());
            comandoSQL.setString(10, f.getTelcel());
            comandoSQL.setString(11, f.getTelresid());
            comandoSQL.setString(12, f.getCtp());
            comandoSQL.setString(13, f.getFuncao());
            comandoSQL.setString(14, f.getDtadmissao());
            comandoSQL.setString(15, f.getDtdemissao());
            comandoSQL.setString(16, f.getEstadocivilfunc());
            comandoSQL.setString(17, f.getBairrofunc());
            comandoSQL.setString(18, f.getCepfunc());
            comandoSQL.setString(19, f.getUf());
            comandoSQL.setString(20, f.getCidadefunc());

            comandoSQL.executeUpdate();

            JOptionPane.showMessageDialog(null, "Cadastrado com sucesso!!");

            bd.desconectar();

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);


        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public void alterarFuncionario(Funcionario f) {
        try {
            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "UPDATE public.funcionario SET nome = ?, sexo = ?, cpf = ?, rg = ?, dtnascimento = ?, email = ?, naturalidade = ?,  nacionalidade = ?, "
                    + "endereco = ?, telcel = ?, telresid = ?, ctp = ?, funcao = ?, dtadmissao = ?, dtdemissao = ?, estadocivilfunc = ?, bairrofunc = ?, "
                    + "cepfunc = ?, uf = ?, cidadefunc = ? "
                    + "WHERE cpf = ?");

            comandoSQL.setString(1, f.getNome());
            comandoSQL.setString(2, f.getSexo());
            comandoSQL.setString(3, f.getCpf());
            comandoSQL.setString(4, f.getRg());
            comandoSQL.setString(5, f.getDtnascimento());
            comandoSQL.setString(6, f.getEmail());
            comandoSQL.setString(7, f.getNaturalidade());
            comandoSQL.setString(8, f.getNacionalidade());
            comandoSQL.setString(9, f.getEndereco());
            comandoSQL.setString(10, f.getTelcel());
            comandoSQL.setString(11, f.getTelresid());
            comandoSQL.setString(12, f.getCtp());
            comandoSQL.setString(13, f.getFuncao());
            comandoSQL.setString(14, f.getDtadmissao());
            comandoSQL.setString(15, f.getDtdemissao());
            comandoSQL.setString(16, f.getEstadocivilfunc());
            comandoSQL.setString(17, f.getBairrofunc());
            comandoSQL.setString(18, f.getCepfunc());
            comandoSQL.setString(19, f.getUf());
            comandoSQL.setString(20, f.getCidadefunc());

            comandoSQL.setString(21, f.getCpf());

            comandoSQL.executeUpdate();

            JOptionPane.showMessageDialog(null, "Alterado com sucesso!!");

            bd.desconectar();

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public Funcionario consultarFuncionario(int id) {
        Funcionario f = new Funcionario();

        try {

            PreparedStatement comandoSQL;
            conexao bd = new conexao();
            bd.conectar();

            comandoSQL = bd.getConexao().prepareStatement(
                    "SELECT * "
                    + "FROM funcionario "
                    + "WHERE id = " + id);

            rs = comandoSQL.executeQuery();

            if (rs.next()) {
                f.setId(rs.getInt("id"));
                f.setNome(rs.getString("nome"));
                f.setSexo(rs.getString("sexo"));
                f.setCpf(rs.getString("cpf"));
                f.setRg(rs.getString("rg"));
                f.setDtnascimento(rs.getString("dtnascimento"));
                f.setEmail(rs.getString("email"));
                f.setNaturalidade(rs.getString("naturalidade"));
                f.setNacionalidade(rs.getString("nacionalidade"));
                f.setEndereco(rs.getString("endereco"));
                f.setTelcel(rs.getString("telcel"));
                f.setTelresid(rs.getString("telresid"));
                f.setCtp(rs.getString("ctp"));
                f.setFuncao(rs.getString("funcao"));
                f.setDtadmissao(rs.getString("dtadmissao"));
                f.setDtdemissao(rs.getString("dtdemissao"));
                f.setEstadocivilfunc(rs.getString("estadocivilfunc"));
                f.setBairrofunc(rs.getString("bairrofunc"));
                f.setCepfunc(rs.getString("cepfunc"));
                f.setUf(rs.getString("uf"));
                f.setCidadefunc(rs.getString("cidadefunc"));

            } else {

                JOptionPane.showMessageDialog(null, "Funcionario não encontrado");

            }

        } catch (Exception e) {

            JOptionPane.showMessageDialog(null, e);
            e.printStackTrace();
        }

        return f;
    }
}
//    public void excluirFuncionario(int id) {
//
//        try {
//            PreparedStatement comandoSQL;
//            conexao bd = new conexao();
//            bd.conectar();
//
//            comandoSQL = bd.getConexao().prepareStatement(
//                    "DELETE FROM funcionario " + "WHERE id = "+ id );
//
//            comandoSQL.executeQuery();
//
//        } catch (Exception e) {
//
//            JOptionPane.showMessageDialog(null, e);
//            e.printStackTrace();
//
//        }
//    }
//}

